GitHub ActionsでSphinxのHTMLをビルドしてReleaseに添付
目的
ビルドしたHTMLをZip圧縮して、GitHub Releaseに添付したい
本の執筆で出版社さんに提出するときReleaseのURLを伝えるだけで済ませたい
前提
ビルドはtagを打ったときのみ実行し、GitHub Releaseに添付
実行結果
https://scrapbox.io/files/6259f066dc62f3001df8ca5e.png
GitHub Actionsの定義
code:build-html.yml
name: build-html
on:
release:
types:
- created
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build sphinx container with requirements
uses: docker/build-push-action@v2
with:
tags: sphinx:latest
load: true # ローカルのdockerコマンドで扱えるようにする
# dockef build -f ./Dockefile -t sphinx:latest .
- name: build html
run: docker run -v pwd:/docs sphinx:latest
env:
LANG: C.UTF-8
- name: pack html
working-directory: build/html
run: zip -r ../../tstcs-ja-${{github.ref_name}}-html.zip *
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
tstcs-ja-${{github.ref_name}}-html.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Dockerfile
code:Dockerfile
FROM sphinxdoc/sphinx
WORKDIR /docs
ADD requirements.* /docs
RUN pip3 install -r requirements.txt -c requirements.lock
docker/build-push-actions について
load: true は、ローカルのdockerコマンドで扱えるようにするために必要でした。
https://scrapbox.io/files/6259ef428f9623001d7a5db1.png
uses: docker://` について
https://scrapbox.io/files/6259eeb95488fa002256b113.png
このため、今回は docker run コマンドを使っています。
github.ref_name について
タグ名かブランチ名、ワークフローを起動したきっかけの方
The branch or tag name that triggered the workflow run.
github.ref だと refs/tags/<tag_name> になってしまい不便
action-gh-release について
GitHub Release に添付してくれるやつ
複数ファイルを添付できるが、まとめたいならZip圧縮などを事前にやっておく必要がある